#include <head.h>

// 创建无名信号量
sem_t sem;

void * sem_func_1(void * val);


int main(int argc, char const *argv[])
{
    // 创建进程号
    pthread_t tid_1;


    // 初始化 无名信号  用于线程同步
    sem_init( &sem , 0 , 0);
    // 创建进程
    pthread_create( &tid_1 , NULL ,  sem_func_1 , NULL);

    // 模拟主进程工作
    printf("主进程工作.....\n");
    sleep(2);
    printf("主进程工作完成s.....\n");
    // 进程 V操作 通知线程开始工作
    sem_post( &sem );



    // 释放进程
    pthread_join(tid_1 , NULL );




    return 0;
}


void * sem_func_1(void * val)
{
    printf("线程 等待中 ...\n");
    sem_wait(&sem); // 如果是 0  则等待 如果是 > 0 则开始运行 并且 -1
    sem_post(&sem);
    printf("线程 工作中...\n");
    sleep(4);
    return NULL;
}








